Pràctiques de «Tecnologia i digitalització» amb Blockly@Arduino / ESP32 / WeMos D1 R32
Ultrasò de 4 pins
HC-SR04
El sensor per mesurar distàncies que anem a provar ara es el emissor receptor de so de HC-SR04 que emet pols de 5 microsegons precedits d'un silenci de 2 microsegons, després rebota el só quan troba un obstacle i l'aparell escolta el so de retorn (eco) i compta el temps que tarda el so en anar i tornar.
Fes el muntatge següent.
Cal tindre en compte que no pots mesurar distancies superiors a 4 metres ni inferiors a 3 cm o l'aparell donarà errors grans.
Copia el programa següent per provar-lo i modificar-lo:
int pinLed1 = 13; #define echoPin 19 // Echo Pin #define trigPin 18 // Trigger Pin long duracio, distancia; // Duració usada per calcular la distancia void setup() { pinMode(pinLed1, OUTPUT); Serial.begin(115200); //definisc el monitor serie pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } // final setup void loop() { digitalWrite(pinLed1, LOW); // Parem el Led /* El cicle trigPin/echoPin s'usa per determinar la distancia del objecte més proper al sensor. */ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duracio = pulseIn(echoPin, HIGH); //Calcula la distancia (en cm) basada en la veloctat del so. distancia = duracio/58.2; Serial.print("distancia = "); Serial.println(distancia); Serial.print("\t"); delay(100); if (distancia < 100 && distancia > 50) { digitalWrite(pinLed1, HIGH); // Engeguem el Led Serial.print("Led engegat"); delay(2000); }// final if }// final de void_loop
L'eixida del monitor sèrie és:
El programa engega el Led durant 2 segons quan la distancia està entre 50 cm i 100cm, fora d'aquest rang el Led està apagat.
Llicenciat sota la Llicència Creative Commons Reconeixement CompartirIgual 4.0